#if !defined(__FRAMEDISPLAY_H_)
#define __FRAMEDISPLAY_H_

#include <display.h>

class FrameDisplay
{
private:
    unsigned long       m_ulLCDWidth;
    unsigned long       m_ulLCDHeight;

    OverlayFormat       m_oCurrentShowFmt; // Show window format
    OverlayFormat       m_oDefaultShowFmt; // default format

    HANDLE              m_hOverlayLock;

    RGB2YCbCrConverter  m_Converter;

private:

    void GetLCDSize();

    void GetCameraSize();

    BOOL GetOverlayFormat(OverlayFormat *pOverlayFormat);

    BOOL SetOverlayFormat(OverlayFormat *pOverlayFmtIn,
                          OverlayFormat *pOverlayFmtOut);


    BOOL ChangeShowOverlay(unsigned long uWidth,
                           unsigned long uHight);

public:
    BOOL  Initialize();

    void  Destroy();

    void  SetDigitalZoom(int zoom);

    BOOL  SetSrcFormat(unsigned long SrcWidth,
                       unsigned long SrcHeight,
                       unsigned int  SrcPixelBs);//reserved

    BOOL  SetShowFormat(unsigned long uWidth,
                        unsigned long uHight);

    BOOL  ResetShowFormat();

    BOOL ShowFrame(void *pSrcBuf);
};

#endif  //__FRAMEDISPLAY_H_
